1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Drawing;
5 using System.Data;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10
11 using WMPLib;
12 using System.Drawing.Printing;
13 using System.Drawing.Drawing2D;
14 using System.Management;
15 using System.Xml;
16 using System.IO;
17
18 namespace SoftQuanLyNhaHang.Views
19 {
20 public partial class uctBanHang : UserControl
21 {
22 public uctBanHang()
23 {
24 InitializeComponent();
25
26 //this.ActiveControl = txtMaSanPham;
27
28 }
29
30 //khởi tạo gọi trong menuscript
31 public static uctBanHang uctBH = new uctBanHang();
32
33 //gioi han textchange chi load khi click voa thay doi gia tri
34 bool loadlandau = true;
35
36 bool _getTrangThaiThanhToan = false;
37
38 //int flag = 0;
39 int _idKhachHang = 0;
40 //string _tenKhachHang = "";
41 //string _soDienThoai = "";
42 //string _diaChi = "";
43 int _trangThai = 0;
44 //double _diemTichLuy = 0;
45
46 //double _tongTien = 0;
47 //double _tienKhach = 0;
48 // double _tienTraLai = 0;
49
50 DateTime _ngayMuaHang = DateTime.Now;
51 //string _tongTienThanhToan = "0";
52 int _getIdKho = 0;
53 float _getsoLuongTonKho = 0;
54
55 //string chietKhauPhanTram = "0";
56 //string chietKhauText = "0";
57 //string thueSuat = "0";
58 //string tongThanhToan = "0";
59 //string tienKhach = "0";
60 //string traLai = "0";
61
62 double tongtienthanhtoan = 0;
63 double thueGTGT = 0;
64 //double ckphantram = 0;
65 //double cktien = 0;
66 double tienHang = 0;
67 double chietKhau = 0;
68
69 DataTable dt = new DataTable();
70 DataTable dtKho = new DataTable();
71 //int idKh = 0;
72 DataTable dtKhTruoc = new DataTable();
73
74 int _idBanHang = 0;
75
76 string _maSanPham = "";
77 string _tenSanPham = "";
78 double _giaBan = 0;
79 double _thanhTien = 0;
80 float _soLuong_NhapKho = 0;
81 float _soLuong_DaBan = 0;
82 string _donViTinh = "";
83 int _donViTinhId = 0;
84 //int _maKhachHangId = 0;
85 //int _nhapKhoId = 0;
86 double sum = 0;
87 //double d = 0;
88 string value = string.Empty;
89 //double thanhTien = 0;
90 //string _ghiChu = "";
91 string _TrangThaiGiaoDich = string.Empty;
92
93 double _chietKhauPhanTram = 0, _thue = 0;
94
95 //string diemTichLuy_str = "0";
96 int _stt = 0;
97 // int _tongSoBanGhi = 0;
98
99 double tongtienthanhtoan_co_thueCk = 0;
100 double tongtienhang_khong_thuevack = 0;
101
102 //Declaration the global variables
103
104 //--https://www.codeproject.com/Tips/733680/Printing-and-Previewing-multiple-pages-in-Csharp
105 PaperSize paperSize = new PaperSize("papersize", 800, 900);//set the paper size
106 int totalnumber = 0;//this is for total number of items of the list or array
107 int itemperpage = 0;//this is for no of item per page
108
109 DataTable dtBomItem = new DataTable();
110
111 int _pageIndexKhTruoc = 1;
112 int _tongSoBanGhiKhTruoc = 0;
113 int _idKhBack = 0;
114
115 string _KeyBanQuyen = "";
116 string _KeyDungThu = "";
117 //string _KeyNgaySuDung = "";
118 string _SerialNumberKey_GetHDD = "";
119 string _SerialNumberKey_GetXML_File = "";
120 //string _KeyDungThu_GetXML_File = "";
121 //string _ValidateSerial = "";
122 bool kt = false;
123
124
125 //Timer t = new Timer();
126
127 private void HienThiKhach_ComboBox()
128 {
129 Dictionary<string, string> comboSource = new Dictionary<string, string>();
130 comboSource.Add("MuaHang", "Mua hàng");
131 comboSource.Add("DatHang", "Đặt hàng");
132 comboSource.Add("TraHang", "Trả hàng");
133
134 cmbTTKh.DataSource = new BindingSource(comboSource, null);
135 cmbTTKh.DisplayMember = "Value";
136 cmbTTKh.ValueMember = "Key";
137 }
138
139 public void HienThiTrangBanHang()
140 {
141 //txtMaSanPham.Focus();
142 this.ActiveControl = txtMaSanPham;
143 //uctBanHang.uctBH.Focus();
144
145 btnThanhToan.Enabled = false;
146 //btnTheVipKhachHang.Enabled = false;
147 btnInHoaDon.Enabled = false;
148
149 //btnThemMoi.Enabled = false;
150
151 //Insert vào bảng khách hàng lấy IdKhachHang
152 //_idKhachHang = Controllers.KhachHangCtrl_tbl.InsertKhachHang_tbl(_idKhachHang, _tenKhachHang, _soDienThoai, _diaChi, _trangThai, _diemTichLuy, _tongTien, _tienKhach, _tienTraLai, _ngayMuaHang, _ghiChu);
153
154 //xoa san pham
155 btnLoaiBo.Visible = false;
156
157 //dua ve gia tri ban dau
158 textBoxTienHang.Text = "";
159 textBoxTongThanhToan.Text = "";
160 textBoxTienKhachDua.Text = "";
161 textBoxTraLaiKhach.Text = "";
162
163 this.HienThiKhach_ComboBox();
164
165 cmbTTKh.SelectedValue = "MuaHang";
166 _TrangThaiGiaoDich = "MuaHang";
167
168
169 }
170 /*
171 //timer eventhandler
172 private void t_Tick(object sender, EventArgs e)
173 {
174
175 //get current time
176 int hh = DateTime.Now.Hour;
177 int mm = DateTime.Now.Minute;
178 int ss = DateTime.Now.Second;
179
180 //time
181 string time = "";
182
183 //padding leading zero
184 if (hh < 10)
185 {
186 time += "0" + hh;
187 }
188 else
189 {
190 time += hh;
191 }
192 time += ":";
193
194 if (mm < 10)
195 {
196 time += "0" + mm;
197 }
198 else
199 {
200 time += mm;
201 }
202 time += ":";
203
204 if (ss < 10)
205 {
206 time += "0" + ss;
207 }
208 else
209 {
210 time += ss;
211 }
212
213 //update label
214 lblClock.Text = time;
215
216 }
217 */
218 private void uctBanHang_Load(object sender, EventArgs e)
219 {
220
221 //timer interval
222 //t.Interval = 1000; //in milliseconds
223
224 //t.Tick += new EventHandler(this.t_Tick);
225
226 //start timer when form loads
227 //t.Start(); //this will use t_Tick() method
228
229 this.KiemTraBanQuyenPhanMem();
230 /*
231 //txtMaSanPham.Focus();
232 this.ActiveControl = txtMaSanPham;
233 //uctBanHang.uctBH.Focus();
234
235 btnThanhToan.Enabled = false;
236 //btnTheVipKhachHang.Enabled = false;
237 btnInHoaDon.Enabled = false;
238
239 //btnThemMoi.Enabled = false;
240
241 //Insert vào bảng khách hàng lấy IdKhachHang
242 //_idKhachHang = Controllers.KhachHangCtrl_tbl.InsertKhachHang_tbl(_idKhachHang, _tenKhachHang, _soDienThoai, _diaChi, _trangThai, _diemTichLuy, _tongTien, _tienKhach, _tienTraLai, _ngayMuaHang, _ghiChu);
243
244 //xoa san pham
245 btnLoaiBo.Visible = false;
246
247 //dua ve gia tri ban dau
248 textBoxTienHang.Text = "";
249 textBoxTongThanhToan.Text = "";
250 textBoxTienKhachDua.Text = "";
251 textBoxTraLaiKhach.Text = "";
252
253 this.HienThiKhach_ComboBox();
254
255 cmbTTKh.SelectedValue = "MuaHang";
256 _TrangThaiGiaoDich = "MuaHang";
257
258 this.KiemTraBanQuyenPhanMem();
259 */
260
261 }
262
263
264
265 /*
266 //
267 private string getUniqueID(string drive)
268 {
269 if (drive == string.Empty)
270 {
271 //Find first drive
272 foreach (DriveInfo compDrive in DriveInfo.GetDrives())
273 {
274 if (compDrive.IsReady)
275 {
276 drive = compDrive.RootDirectory.ToString();
277 break;
278 }
279 }
280 }
281
282 if (drive.EndsWith(":\\"))
283 {
284 //C:\ -> C
285 drive = drive.Substring(0, drive.Length - 2);
286 }
287
288 //string volumeSerial = getVolumeSerial(drive);
289 string cpuID = getCPUID();
290
291 //Mix them up and remove some useless 0's
292 return cpuID;//.Substring(13) + cpuID.Substring(1, 4) + cpuID.Substring(4, 4);
293 }
294 */
295
296 /*
297 private string getVolumeSerial(string drive)
298 {
299 ManagementObject disk = new ManagementObject(@"win32_logicaldisk.deviceid=""" + drive + @":""");
300 disk.Get();
301
302 string volumeSerial = disk["VolumeSerialNumber"].ToString();
303 disk.Dispose();
304
305 return volumeSerial;
306 }
307 */
308
309 private void KiemTraBanQuyenPhanMem()
310 {
311 //-BFEBFBFF000306A9 xem ma ngay 07/01/2018
312 _SerialNumberKey_GetHDD = CauHinhHeThong.getCPUID();
313
314 _KeyBanQuyen = _SerialNumberKey_GetHDD + "top10pm6868";
315
316 string docKey = System.IO.Directory.GetCurrentDirectory().Replace("\\bin\\Release", "\\Resources").Replace("\\bin\\Debug", "\\Resources");
317 XmlDocument itemKey = new XmlDocument();
318 itemKey.Load(docKey + "/ConnectCSDL.xml");
319
320 var node = itemKey.SelectSingleNode("//*[@Id='PhamQuyetNghi']");
321
322 _SerialNumberKey_GetXML_File = node.InnerText;
323
324 kt = CauHinhHeThong.ValidateSHA1HashData(_KeyBanQuyen, _SerialNumberKey_GetXML_File);
325
326 if (kt == false)
327 {
328 DateTime ngayMh = DateTime.Now;
329
330 //--1962351068343182177106182132551691951898613538207155130
331 for (int ng = 0; ng < 32; ng++)
332 {
333 _KeyDungThu = _SerialNumberKey_GetHDD + "demo6868" + CauHinhHeThong.Format_HienThiNgayThangNam(ngayMh.ToString(), false);
334 //--20090516388200000demo686804/12/2017
335 kt = CauHinhHeThong.ValidateSHA1HashData(_KeyDungThu, _SerialNumberKey_GetXML_File);
336
337 ngayMh = ngayMh.AddDays(+1);
338 if (kt == true)
339 {
340 break;
341 }
342 }
343
344 if (kt == false)
345 {
346 grbKey.Visible = true;
347 lblDungLai.Text = "Dừng Lại!";
348 lblTaiKhoanBanDaHet.Text = "Tài khoản bạn đã hết thời gian dùng thử";
349 lblHayLienHe.Text = "Hãy liên hệ với nhà cung cấp.";
350 }
351 else
352 {
353 grbKey.Visible = false;
354 }
355 }
356 }
357
358 public void HienThiTextBoxTheoSanPhamDangBan(string _tenSanPham, string _soLuong, string _giaBan)
359 {
360 txtSoLuong.Text = _soLuong;
361 txtGiaBan.Text = _giaBan;
362 }
363
364 private void HienThiDanhSachSanPhamTheoKhachHang(int idKhachHang)
365 {
366 dgvDanhSachBanHang.Rows.Clear();
367 //Ẩn cột đầu tiên
368 dgvDanhSachBanHang.RowHeadersVisible = false;
369 //-https://stackoverflow.com/questions/17404969/right-align-a-column-in-datagridview-doesnt-work
370 this.dgvDanhSachBanHang.Columns["STT"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
371 this.dgvDanhSachBanHang.Columns["STT"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
372 //this.dgvDanhSachNhapHang.Columns["STT"].SortMode = DataGridViewColumnSortMode.NotSortable;
373
374 //this.dgvDanhSachBanHang.Columns["SoLuongDaBan"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
375 //this.dgvDanhSachBanHang.Columns["SoLuongDaBan"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
376
377 this.dgvDanhSachBanHang.Columns["SoLuongDaBanHienThi"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
378 this.dgvDanhSachBanHang.Columns["SoLuongDaBanHienThi"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
379
380 this.dgvDanhSachBanHang.Columns["GiaBan"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
381 this.dgvDanhSachBanHang.Columns["GiaBan"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
382
383 this.dgvDanhSachBanHang.Columns["ChietKhauPhanTram"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
384 this.dgvDanhSachBanHang.Columns["ChietKhauPhanTram"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
385
386 this.dgvDanhSachBanHang.Columns["Thue"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
387 this.dgvDanhSachBanHang.Columns["Thue"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
388
389 this.dgvDanhSachBanHang.Columns["TenDonViTinh"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
390 this.dgvDanhSachBanHang.Columns["TenDonViTinh"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
391
392 this.dgvDanhSachBanHang.Columns["ThanhTien_BH"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight;
393 this.dgvDanhSachBanHang.Columns["ThanhTien_BH"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
394
395 tongtienthanhtoan_co_thueCk = 0;
396 tongtienhang_khong_thuevack = 0;
397
398 _stt = 0;
399
400 //select từ bảng bán hàng //da toi uu sql cau lenh select
401 dt = Controllers.BanHangCtrl.FillDataSet_getBanHangByKhachHangId("", idKhachHang).Tables[0];
402 if (dt.Rows.Count > 0)
403 {
404 //loai bo cac san pham khong mua
405 btnLoaiBo.Visible = true;
406
407
408 //_tongSoBanGhi = Int32.Parse(dt.Rows[0]["TongSoBanGhi"].ToString());
409 double soluongDaBan = 0;
410 double giaban = 0;
411 double thanhtien = 0;
412
413 double thue = 0;
414 double chietkhau = 0;
415
416
417
418 //int i = 0;
419 foreach (DataRow item in dt.Rows)
420 {
421 _stt += 1;
422 int n = dgvDanhSachBanHang.Rows.Add();
423
424 dgvDanhSachBanHang.Rows[n].Cells["IdBanHang"].Value = item["IdBanHang"].ToString();
425 dgvDanhSachBanHang.Rows[n].Cells["NhapKhoId"].Value = item["NhapKhoId"].ToString();
426 dgvDanhSachBanHang.Rows[n].Cells["STT"].Value = _stt.ToString();
427 dgvDanhSachBanHang.Rows[n].Cells["MaSanPham"].Value = item["MaSanPham"].ToString();
428 dgvDanhSachBanHang.Rows[n].Cells["TenSanPham"].Value = item["TenSanPham"].ToString();
429
430 soluongDaBan = CauHinhHeThong.Format_SoDeTinhToan(item["SoLuongDaBan"].ToString(), false);
431 giaban = CauHinhHeThong.Format_SoDeTinhToan(item["GiaBan"].ToString(), false);
432
433 dgvDanhSachBanHang.Rows[n].Cells["SoLuongDaBan"].Value = CauHinhHeThong.Format_SoDeHienThi(soluongDaBan, false);
434 if (item["TrangThai"].ToString() == "2")
435 {
436 dgvDanhSachBanHang.Rows[n].Cells["SoLuongDaBanHienThi"].Value = CauHinhHeThong.Format_SoDeHienThi(soluongDaBan, false) + ". Hàng khuyễn mãi";
437 }
438 else
439 {
440 dgvDanhSachBanHang.Rows[n].Cells["SoLuongDaBanHienThi"].Value = CauHinhHeThong.Format_SoDeHienThi(soluongDaBan, false);
441 }
442
443
444 dgvDanhSachBanHang.Rows[n].Cells["GiaBan"].Value = CauHinhHeThong.Format_SoDeHienThi(giaban, true);
445
446 dgvDanhSachBanHang.Rows[n].Cells["TenDonViTinh"].Value = item["TenDonViTinh"].ToString();
447
448 thue = CauHinhHeThong.Format_SoDeTinhToan(item["Thue"].ToString(),false);
449 chietkhau = CauHinhHeThong.Format_SoDeTinhToan(item["ChietKhauPhanTram"].ToString(),false);
450
451 dgvDanhSachBanHang.Rows[n].Cells["ChietKhauPhanTram"].Value = CauHinhHeThong.Format_SoDeHienThi(chietkhau, false);
452
453 dgvDanhSachBanHang.Rows[n].Cells["Thue"].Value = CauHinhHeThong.Format_SoDeHienThi(thue, false);
454
455 //Tính tổng một mặt hàng gồm nhiều sản phẩm hoặc 1 sản phẩm
456 thanhtien = CauHinhHeThong.BanHang_ThanhTien(giaban, soluongDaBan, thue, chietkhau);/// soluong* giaban;
457
458 tongtienthanhtoan_co_thueCk += thanhtien;
459 tongtienhang_khong_thuevack += (giaban * soluongDaBan);
460
461 dgvDanhSachBanHang.Rows[n].Cells["ThanhTien_BH"].Value = CauHinhHeThong.Format_SoDeHienThi(thanhtien, true);// item["ThanhTien"].ToString();
462 dgvDanhSachBanHang.Rows[n].Cells["Xoa"].Value = "false";
463 }
464
465 //this.KetQuaTinhTien();
466 textBoxTienHang.Text = CauHinhHeThong.Format_SoDeHienThi(tongtienhang_khong_thuevack, true);
467 textBoxTongThanhToan.Text = CauHinhHeThong.Format_SoDeHienThi(tongtienthanhtoan_co_thueCk, true);
468
469 }
470 else
471 {
472 //loai bo cac san pham khong mua
473 btnLoaiBo.Visible = false;
474
475 tongtienthanhtoan_co_thueCk = 0;
476 tongtienhang_khong_thuevack = 0;
477
478 textBoxTienHang.Text = "0";
479 textBoxTongThanhToan.Text = "0";
480 _stt = 0;
481
482 }
483
484 textBoxTienKhachDua.Text = "";
485 textBoxTraLaiKhach.Text = "";
486 //this.KiemTraHangKhuyenMai();
487 txtTongSoMatHang.Text = _stt.ToString() + " = " + textBoxTongThanhToan.Text.Trim();
488 }
489
490 //-http://aptech.vn/kien-thuc-tin-hoc/c-truyen-du-lieu-giua-cac-form.html
491 private void btnThanhToan_Click(object sender, EventArgs e)
492 {
493 //bat dau thanh toan = false
494 _getTrangThaiThanhToan = false;
495
496 //kiểm tra thanh toán mua hàng có lưu thông tin khách hàng hay không
497 frmBanHangThanhToan frmBHTT = new frmBanHangThanhToan(tongtienthanhtoan_co_thueCk, _idKhachHang, CauHinhHeThong.LUU_THONG_TIN_KHACH_MUA_HANG, _TrangThaiGiaoDich);
498
499 frmBHTT.MyGetData = new frmBanHangThanhToan.GetString(GetValue);
500
501 frmBHTT.ShowDialog();
502
503 //Ẩn nút khi click
504 //btnThanhToan.Enabled = false;
505 this.ActiveControl = txtMaSanPham;
506
507 if (CauHinhHeThong.IN_HOA_DON_SAU_KHI_BAN == "checked" && btnInHoaDon.Enabled==true)
508 {
509 this.ThucHienLenhIn();
510
511 }
512 }
513
514 private void txtTienKhach_TextChanged(object sender, EventArgs e)
515 {
516
517 }
518
519 private void btnLoaiBo_Click(object sender, EventArgs e)
520 {
521 DialogResult dr = MessageBox.Show("Bạn có chắc chắn xóa?", "Xác nhận", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
522 if (dr == DialogResult.Yes)
523 {
524 foreach (DataGridViewRow dataRow in dgvDanhSachBanHang.Rows)
525 {
526 if (bool.Parse(dataRow.Cells["Xoa"].Value.ToString()))
527 {
528 Controllers.BanHangCtrl.DeleteBanHang(Int32.Parse(dataRow.Cells["IdBanHang"].Value.ToString()));
529 txtGiaBan.Text = "";
530 txtSoLuong.Text = "";
531 }
532 }
533
534 //if (i > 0)
535 //{
536 //dua chuot ve ma san pham
537 txtMaSanPham.Focus();
538 //
539 //}
540
541 }
542 else
543 {
544 return;
545 }
546
547
548 //Goi lai danh sach san pham
549 this.HienThiDanhSachSanPhamTheoKhachHang(_idKhachHang);
550 }
551
552 private void btnTimThemSanPham_Click(object sender, EventArgs e)
553 {
554 //txtSoLuong.Enabled = false;
555 //txtGiaBan.Enabled = false;
556 //lan dau load textbox gia va soluong
557 loadlandau = true;
558 //_soLuong = 1;
559 //thanhTien = 0;
560 _soLuong_DaBan = 1;
561
562 btnThanhToan.Enabled = true;
563 //btnTheVipKhachHang.Enabled = true;
564
565 //Tìm kiếm từ bảng nhập kho
566 _maSanPham = txtMaSanPham.Text.Trim();
567 if (string.IsNullOrEmpty(_maSanPham))
568 {
569 MessageBox.Show("Bạn chưa nhập mã sản phẩm");
570 txtMaSanPham.Focus();
571 return;
572 }
573 //Tìm các sản phẩm trong bảng bán hàng
574 //dt = tbl_BanHang
575 //dt = Controllers.BanHangCtrl.FillDataSet_getBanHangByKhachHangId(_maSanPham, _idKhachHang).Tables[0];
576 //dt = Controllers.BanHangCtrl.FillDataSet_getBanHangByKhachHangId_MuaHang(_maSanPham, _idKhachHang, _trangThai).Tables[0];
577 //dt = Controllers.BanHangCtrl.FillDataSet_getBanHangByKhachHangId_MuaHang2(_maSanPham, _idKhachHang, _trangThai, _getIdKho).Tables[0];
578
579 ////da toi uu sql cau lenh select
580 dt = Controllers.uctBanHangCtrl.uctBanHang_BanHang_gets(_maSanPham, _trangThai, _idKhachHang).Tables[0];
581
582 if (dt.Rows.Count > 0)
583 {
584 _getIdKho = Int32.Parse(dt.Rows[0]["NhapKhoId"].ToString());
585
586 //so luong trong kho
587 _soLuong_NhapKho = float.Parse(dt.Rows[0]["SoLuong"].ToString());
588
589 _soLuong_DaBan = float.Parse(dt.Rows[0]["SoLuongDaBan"].ToString()) + 1;
590
591 _giaBan = CauHinhHeThong.Format_SoDeTinhToan(dt.Rows[0]["GiaBan"].ToString(),false);
592 //Tìm thấy sản phẩm trong bảng bán hàng thì update
593 txtGiaBan.Text = CauHinhHeThong.Format_SoDeHienThi(_giaBan, true) ;
594
595 txtSoLuong.Text = _soLuong_DaBan.ToString();
596 //txtSoLuong.Text = _soLuong.ToString();
597
598 //lblTenSanPham.Text = dt.Rows[0]["TenSanPham"].ToString();
599 txtMaSanPham.Text = string.Empty;
600 _tenSanPham = dt.Rows[0]["TenSanPham"].ToString();
601 _idBanHang = Int32.Parse(dt.Rows[0]["IdBanHang"].ToString());
602
603 if (string.IsNullOrEmpty(txtGiaBan.Text.ToString()))
604 {
605 _giaBan = 0;
606 }
607
608 //_thanhTien = _soLuong_DaBan * _giaBan;
609 //Update số lượng sản phẩm
610 Controllers.BanHangCtrl.Update_BanHang_Update_SL_Gia(_idBanHang, _tenSanPham, _giaBan, _thanhTien, _soLuong_NhapKho, _soLuong_DaBan);
611 }
612 else
613 {
614 //Không có sản phẩm trong bảng bán hàng
615
616 //tìm sản phẩm trong bảng kho
617 //dt = Controllers.NhapKhoCtrl.FillDataSet_NhapKhoGetByMaSanPham(_maSanPham).Tables[0];
618
619
620 //lay cac san pham trong kho ban het hoac chua ban het
621 //dtKho = Controllers.KhoCtrl.FillDataSet_getKho_ByMaSanPham(_maSanPham).Tables[0];
622 //dtKho = Controllers.KhoCtrl.FillDataSet_getKho_ByMaSanPham_OrMaVietTat(_maSanPham).Tables[0];
623 //dtKho = Controllers.KhoCtrl.FillDataSet_getKho_ByMaSanPhamByNotInIdKho(_getIdKho, _maSanPham, _idKhachHang).Tables[0];
624 //lay cac san pham trong kho chua ban het
625 //da toi uu sql cau lenh select
626 dtKho = Controllers.uctBanHangCtrl.uctBanHang_Kho_get(_maSanPham, "NhapHang").Tables[0];
627
628 //kiểm tra có tìm thấy trong bảng nhập kho hay không?
629 if (dtKho.Rows.Count > 0)
630 {
631 //Tìm thấy sản phẩm trong bảng kho
632 _tenSanPham = dtKho.Rows[0]["TenSanPham"].ToString();
633 _giaBan = CauHinhHeThong.Format_SoDeTinhToan(dtKho.Rows[0]["GiaBanLe"].ToString(),false);
634
635 //_thanhTien = _giaBan;
636
637 _soLuong_NhapKho = float.Parse(dtKho.Rows[0]["SoLuong"].ToString());
638 _soLuong_DaBan = float.Parse(dtKho.Rows[0]["SoLuongDaBan"].ToString());
639
640 _getsoLuongTonKho = _soLuong_NhapKho - _soLuong_DaBan;
641
642 txtGiaBan.Text = CauHinhHeThong.Format_SoDeHienThi(_giaBan, true);// _giaBan;
643 _chietKhauPhanTram = CauHinhHeThong.Format_SoDeTinhToan(dtKho.Rows[0]["ChietKhauPTBanHang"].ToString(), false);
644 _thue = CauHinhHeThong.Format_SoDeTinhToan(dtKho.Rows[0]["ThueBanHang"].ToString(), false);
645
646 txtSoLuong.Text = "1";
647
648
649 _donViTinh = dtKho.Rows[0]["TenDonViTinh"].ToString();
650 _donViTinhId = Int32.Parse(dtKho.Rows[0]["DonViTinhId"].ToString());
651 _trangThai = 0;
652 //_nhapKhoId = Int32.Parse(dtKho.Rows[0]["IdKho"].ToString());
653 _getIdKho = Int32.Parse(dtKho.Rows[0]["IdKho"].ToString());
654
655
656 //Thêm vào bảng bán hàng
657 _idBanHang = Controllers.BanHangCtrl.InsertBanHang(_idBanHang, _maSanPham, _tenSanPham, _giaBan, _thanhTien, _getsoLuongTonKho, _donViTinh, _donViTinhId, _idKhachHang, _ngayMuaHang, _trangThai, _getIdKho, _chietKhauPhanTram, _thue, 1);
658
659
660 txtMaSanPham.Text = string.Empty;
661
662 //lblTenSanPham.Text = _tenSanPham;// dt.Rows[0]["TenSanPham"].ToString();
663 }
664 else
665 {
666 //Không tìm thấy trong bảng kho
667 //Thêm mới sản phẩm vào bảng kho
668 //Hiển thị form nhập kho lên
669 frmNhapKho frmNK = new frmNhapKho(_idKhachHang, _maSanPham);
670 //frmNhapKho frmNk = new frmNhapKho(int idKhachHang, string maSanPham);
671 //frmNk.txt_MaSanPham.Text = _maSanPham;
672
673 //frmNk.lbl_idKhachHang.Text = _idKhachHang.ToString();
674 frmNK.ShowDialog();
675
676 txtMaSanPham.Text = string.Empty;
677 txtGiaBan.Text = "";
678 txtSoLuong.Text = "";
679 //_idBanHang = Int32.Parse(frmNk.lbl_idBanHang.Text.ToString());
680 }
681 }
682
683 //select từ bảng bán hàng
684 this.HienThiDanhSachSanPhamTheoKhachHang(_idKhachHang);
685
686 //Bật âm thanh trong bán hàng
687 WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer();
688 string startupPath = System.IO.Directory.GetCurrentDirectory().Replace("\\bin\\Release", "\\Resources").Replace("\\bin\\Debug", "\\Resources");
689 wplayer.URL = startupPath + "/Audio-QuanLyBanHang.mp3";
690 wplayer.controls.play();
691
692 //kiêm tra hàng khuyễn mãi khi ấn enter
693 this.KiemTraHangKhuyenMai();
694
695 }
696
697
698 private void txtMaSanPham_TextChanged(object sender, EventArgs e)
699 {
700 }
701
702
703 //Tính tổng tiền trong 1 cột
704 private double TongTienHang()
705 {
706 sum = 0;
707 double thanht = 0;
708
709 for (int i = 0; i < dgvDanhSachBanHang.Rows.Count; ++i)
710 {
711
712 thanht = 0;
713 try
714 {
715 thanht = CauHinhHeThong.Format_SoDeTinhToan(dgvDanhSachBanHang.Rows[i].Cells["ThanhTien_BH"].Value.ToString(),true);
716 }
717 catch { }
718
719 sum += thanht;
720 }
721
722 return sum;
723 }
724
725 private void txtSoLuong_TextChanged(object sender, EventArgs e)
726 {
727 if (loadlandau == true) { return; }
728
729 try
730 {
731 string value = txtSoLuong.Text.Replace(CauHinhHeThong.PHAN_CACH_HANG_NGHIN, "");
732 ulong ul = 0;
733
734 if (ulong.TryParse(value, out ul))
735 {
736 txtSoLuong.TextChanged -= txtSoLuong_TextChanged;
737
738 if (txtSoLuong.Text.StartsWith("0"))
739 {
740 txtSoLuong.Text = ul.ToString();
741 }
742 else
743 {
744 txtSoLuong.Text = CauHinhHeThong.DoFormat_NhapSoTrongText(value);
745 }
746
747
748 txtSoLuong.SelectionStart = txtSoLuong.Text.Length;
749 txtSoLuong.TextChanged += txtSoLuong_TextChanged;
750 }
751 else
752 {
753 if (txtSoLuong.Text.StartsWith(CauHinhHeThong.DAU_PHAY))
754 {
755 txtSoLuong.TextChanged -= txtSoLuong_TextChanged;
756 txtSoLuong.Text = "0" + txtSoLuong.Text;
757 txtSoLuong.SelectionStart = txtSoLuong.Text.Length;
758 txtSoLuong.TextChanged += txtSoLuong_TextChanged;
759 }
760 }
761
762 //hien thi tong 1 mat hang va tong mot don hang
763 this.Update_SanPham_Khi_ThayDoiGiaBan_SoLuong();
764 }
765 catch
766 {
767 }
768
769 }
770
771 private void txtGiaBan_TextChanged(object sender, EventArgs e)
772 {
773 if (loadlandau == true) { return; }
774
775 try
776 {
777 string value = txtGiaBan.Text.Replace(CauHinhHeThong.PHAN_CACH_HANG_NGHIN, "");
778 ulong ul = 0;
779
780 if (ulong.TryParse(value, out ul))
781 {
782 txtGiaBan.TextChanged -= txtGiaBan_TextChanged;
783
784 if (txtGiaBan.Text.StartsWith("0"))
785 {
786 txtGiaBan.Text = ul.ToString();
787 }
788 else
789 {
790 txtGiaBan.Text = CauHinhHeThong.DoFormat_NhapSoTrongText(value);
791 }
792
793 txtGiaBan.SelectionStart = txtGiaBan.Text.Length;
794 txtGiaBan.TextChanged += txtGiaBan_TextChanged;
795 }
796 else
797 {
798 if (txtGiaBan.Text.StartsWith(CauHinhHeThong.DAU_PHAY))
799 {
800 txtGiaBan.TextChanged -= txtGiaBan_TextChanged;
801 txtGiaBan.Text = "0" + txtGiaBan.Text;
802 txtGiaBan.SelectionStart = txtGiaBan.Text.Length;
803 txtGiaBan.TextChanged += txtGiaBan_TextChanged;
804 }
805 }
806
807 //hien thi tong 1 mat hang va tong mot don hang
808 Update_SanPham_Khi_ThayDoiGiaBan_SoLuong();
809 }
810 catch
811 {
812 }
813
814 }
815
816 private void txtGiaBan_KeyPress(object sender, KeyPressEventArgs e)
817 {
818 CauHinhHeThong.NhapSoTrongTextBox(sender, e);
819 }
820
821 private void txtSoLuong_KeyPress(object sender, KeyPressEventArgs e)
822 {
823 CauHinhHeThong.NhapSoTrongTextBox(sender, e);
824 }
825
826 private void btnThayDoiGia_Click(object sender, EventArgs e)
827 {
828 //txtGiaBan.Enabled = true;
829 //txtSoLuong.Enabled = false;
830 }
831
832 private void btnThayDoiSoLuong_Click(object sender, EventArgs e)
833 {
834 //txtSoLuong.Enabled = true;
835 //txtGiaBan.Enabled = false;
836 }
837
838 private void Update_SanPham_Khi_ThayDoiGiaBan_SoLuong()
839 {
840 //_idBanHang =
841 //_tenSanPham = lblTenSanPham.Text;
842 _giaBan = CauHinhHeThong.Format_SoDeTinhToan(txtGiaBan.Text.Trim(), true);
843 //_soLuong = Int32.Parse(CauHinhHeThong.Format_SoDeTinhToan(txtSoLuong.Text.Trim()).ToString());// Int32.Parse(txtSoLuong.Text.ToString().Replace(",", ""));
844 //_soLuong = (float)CauHinhHeThong.Format_SoDeTinhToan(txtSoLuong.Text.Trim(), true);
845 _soLuong_DaBan = (float)CauHinhHeThong.Format_SoDeTinhToan(txtSoLuong.Text.Trim(), true);
846 //thanhTien = 0;
847 //thanhTien = _soLuong * Int32.Parse(txtGiaBan.Text.Replace(",", ""));
848 //_thanhTien = _soLuong_DaBan * _giaBan;// string.Format("{0:#,#}", thanhTien);
849
850 //Hien thi thong bao neu so luong update nhieu hon so luong trong kho
851
852 Controllers.BanHangCtrl.Update_BanHang_Update_SL_Gia(_idBanHang, _tenSanPham, _giaBan, _thanhTien, _soLuong_NhapKho, _soLuong_DaBan);
853 /*
854 if (_getsoLuongTonKho > _soLuong_DaBan)
855 {
856 Controllers.BanHangCtrl.Update_BanHang_Update_SL_Gia(_idBanHang, _tenSanPham, _giaBan, _thanhTien, _soLuong_NhapKho, _soLuong_DaBan);
857
858 }
859 else
860 {
861 Controllers.BanHangCtrl.Update_BanHang_Update_SL_Gia(_idBanHang, _tenSanPham, _giaBan, _thanhTien, _soLuong_NhapKho, _getsoLuongTonKho);
862
863 MessageBox.Show("Số lượng không vượt quá " + _getsoLuongTonKho.ToString());
864
865 }
866 */
867
868 //kiem tra so luong trong kho
869 //msp 4, sokho 10, sldb 8
870 //msp 4, sldb 9
871 //idkhohien tai, msp,
872 //lay san pham tiep theo
873 /*
874 DataTable dtTonK = new DataTable();
875 dtTonK = Controllers.KhoCtrl.FillDataSet_GetSCac_SP_TonKho_ByMaSanPham(_maSanPham, 0, _maSanPham).Tables[0];
876 if (dtTonK.Rows.Count > 0)
877 {
878 float soluongTrongKho = 0;
879 float soluongDaBan = 0;
880 float soLuongTxt = 0;
881 float soLuongTonKho = 0;
882
883 foreach (DataRow item in dtTonK.Rows)
884 {
885
886 soluongTrongKho = float.Parse(item["SoLuong"].ToString());
887 soluongDaBan = float.Parse(item["SoLuongDaBan"].ToString());
888
889 soLuongTonKho = soluongTrongKho - soluongDaBan;
890
891 if (soLuongTonKho >= soLuongTxt)
892 {
893 //update soluong txt vao bang ban hang
894
895 return;
896 }
897 else
898 {
899 //them moi vao bang ban hang
900 }
901
902 }
903 }
904
905 */
906
907
908 ///dt = Controllers.BanHangCtrl.FillDataSet_getBanHangByKhachHangId("-1", _idKhachHang).Tables[0];
909 //dgvDanhSachBanHang.DataSource = dt;
910 //Hien thi danh sach san pham
911 this.HienThiDanhSachSanPhamTheoKhachHang(_idKhachHang);
912
913 //Hien thi tong gia tien
914 //lblTongTienThanhToan.Text = string.Format("{0:#,#}", TongRowInColumn("ThanhTiens"));
915
916 }
917
918 //private void button1_Click(object sender, EventArgs e)
919 //{
920 //string value = new DataTable().Compute( txtTeanSanPham.Text.ToString(), null).ToString();
921 //MessageBox.Show(value);
922
923 //frmBanHangThanhToan frmBHTT = new frmBanHangThanhToan();
924 //frmBHTT.MyGetData = new frmBanHangThanhToan.GetString(GetValue);
925 //frmBHTT.Show();
926
927 //}
928
929
930 public void GetValue(string tienkhachhangdua, string tientralaikhachhang, bool btnTrangThai_HuyFalse_hoac_LuuTrue, int idKhachhang)
931 {
932 textBoxTienKhachDua.Text = tienkhachhangdua;
933 textBoxTraLaiKhach.Text = tientralaikhachhang;
934 btnThanhToan.Enabled = !btnTrangThai_HuyFalse_hoac_LuuTrue;
935 btnLoaiBo.Visible = !btnTrangThai_HuyFalse_hoac_LuuTrue;
936 _idKhachHang = idKhachhang;
937
938 //txtMaSanPham.Enabled = !btnTrangThai_HuyFalse_hoac_LuuTrue;
939
940 //txtSoLuong.Enabled = !btnTrangThai_HuyFalse_hoac_LuuTrue;
941 //txtGiaBan.Enabled = !btnTrangThai_HuyFalse_hoac_LuuTrue;
942
943 //btnThemMoi.Enabled = btnTrangThai_HuyFalse_hoac_LuuTrue;
944 btnInHoaDon.Enabled = btnTrangThai_HuyFalse_hoac_LuuTrue;
945
946 _getTrangThaiThanhToan = btnTrangThai_HuyFalse_hoac_LuuTrue;
947
948 if (btnTrangThai_HuyFalse_hoac_LuuTrue == true)
949 {
950
951
952 //thanh toán thành công
953 lblThongBao.Visible = true;
954
955
956 /*var t = new System.Windows.Forms.Timer();
957 t.Interval = 3000; // it will Tick in 3 seconds
958 t.Tick += (s, ex) =>
959 {
960 lblThongBao.Visible = false;
961 t.Stop();
962 };
963 t.Start();
964 */
965
966 loadlandau = true;
967 txtGiaBan.Text = "";
968 txtSoLuong.Text = "";
969
970 //_pageIndexKhTruoc = _pageIndexKhTruoc + 0 ;
971
972 _idKhachHang = 0;
973
974
975 }
976
977 //this.ActiveControl = txtMaSanPham;
978
979
980 }
981
982
983 //hiển thị thông tin khách hàng theo the vip
984 private void GetValue_ThongTinKhachHang(int idkh, bool btnTrangThai, string tienkhachDua)
985 {
986 //lblHoVaTen.Text = hovaten;
987 //lblSoDienThoai.Text = sodienthoai;
988 //lblDiaChi.Text = diachi;
989 //lblGhiChu.Text = ghichu;
990
991 //lblDiemTichLuy.Text = CauHinhHeThong.Format_SoDeHienThi(diemtichluy, true);
992 //diemTichLuy_str = diemtichluy;
993
994 //panelTT_KhDungTheVip.Visible = !btnTrangThai;
995 //ThongTinKhachHang_Bool(btnTrangThai);
996 if (btnTrangThai == true)
997 {
998 this.HienThiDanhSachSanPhamTheoKhachHang(idkh);
999
1000 _idKhachHang = idkh;
1001
1002 textBoxTienKhachDua.Text = tienkhachDua;
1003
1004
1005 lblMaDonHang.Text = CauHinhHeThong.TIEU_DE_NGU_HOA_DON_BAN_HANG + _idKhachHang.ToString();
1006
1007 txtMaSanPham.Focus();
1008
1009 DataTable dtKhget = new DataTable();
1010 dtKhget = Controllers.KhachHangCtrl_tbl.FillDataSet_KhachHang_GetBy_IdKhachHang(_idKhachHang).Tables[0];
1011 if (dtKhget.Rows.Count > 0)
1012 {
1013 textBoxTienKhachDua.Text = CauHinhHeThong.Format_SoDeHienThi(CauHinhHeThong.Format_SoDeTinhToan(dtKhget.Rows[0]["TienKhach"].ToString(), false), true);
1014 textBoxTraLaiKhach.Text = CauHinhHeThong.Format_SoDeHienThi(CauHinhHeThong.Format_SoDeTinhToan(dtKhget.Rows[0]["TienTraLai"].ToString(), false), true);
1015 }
1016 }
1017
1018 }
1019
1020
1021 /*
1022 private void ThongTinKhachHang_Bool(bool e)
1023 {
1024 lblHoVaTen.Visible = e;
1025 lblSoDienThoai.Visible = e;
1026 lblDiaChi.Visible = e;
1027 lblGhiChu.Visible = e;
1028 lblDiemTichLuy.Visible = e;
1029
1030 lbl_txtHoVaTen.Visible = e;
1031 lbl_txtSoDienThoai.Visible = e;
1032 lbl_txtDiaChi.Visible = e;
1033 lbl_txtGhiChu.Visible = e;
1034 lbl_txtDiemTichLuy.Visible = e;
1035 chkSuDungThanhToan.Visible = e;
1036 }
1037 */
1038
1039 private void txtMaSanPham_Enter(object sender, EventArgs e)
1040 {
1041
1042 }
1043
1044 /*
1045 private void pd_PrintPage(object sender, PrintPageEventArgs e)
1046 {
1047 //Single yPos = 0;
1048 //Single leftMargin = e.MarginBounds.Left;
1049 //Single topMargin = e.MarginBounds.Top;
1050 //Image img = Image.FromFile("logo.bmp");
1051 //Rectangle logo = new Rectangle(40, 40, 50, 50);
1052 //using (Font printFont = new Font("Arial", 20.0f))
1053 //{
1054 //e.Graphics.DrawImage(img, logo);
1055 //e.Graphics.DrawString("Header", printFont, Brushes.Black, leftMargin, yPos, new StringFormat());
1056 // }
1057 //using (SolidBrush blueBrush = new SolidBrush(Color.Black))
1058 //{
1059 // Rectangle rect = new Rectangle(100, 100, 500, 120);
1060 // e.Graphics.FillRectangle(blueBrush, rect);
1061
1062 //e.Graphics.DrawString("Cafe Cat Tường" + this.Width.ToString(), new Font("Arial", 12, FontStyle.Regular), Brushes.Black, new Point(600, 100));
1063
1064 //e.Graphics.DrawString("Abc ok:", new Font("Arial", 12, FontStyle.Regular), Brushes.Black, new Point(25, 200));
1065
1066
1067
1068 //}
1069
1070
1071 DataTable tmp_Table = new DataTable();
1072 tmp_Table.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)),
1073 new DataColumn("Name", typeof(string)),
1074 new DataColumn("Country",typeof(string)) });
1075 tmp_Table.Rows.Add(1, "John Hammond", "United States");
1076 tmp_Table.Rows.Add(2, "Mudassar Khan", "India");
1077 tmp_Table.Rows.Add(3, "Suzanne Mathews", "France");
1078 tmp_Table.Rows.Add(4, "Robert Schidner", "Russia");
1079 tmp_Table.Rows.Add(5, "John Hammond", "United States");
1080 tmp_Table.Rows.Add(6, "Mudassar Khan", "India");
1081 tmp_Table.Rows.Add(7, "Mudassar Khan", "India");
1082 tmp_Table.Rows.Add(8, "Mudassar Khan", "India");
1083 tmp_Table.Rows.Add(9, "Mudassar Khan", "India");
1084 tmp_Table.Rows.Add(10, "Mudassar Khan", "India");
1085 tmp_Table.Rows.Add(11, "Mudassar Khan", "India");
1086 tmp_Table.Rows.Add(12, "Mudassar Khan", "India");
1087 tmp_Table.Rows.Add(13, "Mudassar Khan", "India");
1088 tmp_Table.Rows.Add(14, "Mudassar Khan", "India");
1089 tmp_Table.Rows.Add(15, "Mudassar Khan", "India");
1090 tmp_Table.Rows.Add(16, "Mudassar Khan", "India");
1091
1092 for (int x = 17; x < 70; x++)
1093 {
1094 tmp_Table.Rows.Add(x, "Mudassar Khan", "India" + x);
1095 }
1096
1097 string header = "Master List";
1098 string footer = string.Empty;
1099
1100 int columnCount = tmp_Table.Columns.Count;
1101 int maxRows = tmp_Table.Rows.Count;
1102
1103
1104 using (Graphics g = e.Graphics)
1105 {
1106 Brush brush = new SolidBrush(Color.Black);
1107 Pen pen = new Pen(brush);
1108 Font font = new Font("Arial", 10);
1109 SizeF size;
1110
1111 int x = 0, y = 0, width = 130;
1112 float xPadding;
1113
1114 // Here title is written, sets to top-middle position of the page
1115 size = g.MeasureString(header, font);
1116 xPadding = (width - size.Width) / 2;
1117 g.DrawString(header, font, brush, x + 250, y + 5);
1118
1119 x = 0;
1120 y += 30;
1121
1122
1123 // Writes out all column names in designated locations, aligned as a table
1124 foreach (DataColumn column in tmp_Table.Columns)
1125 {
1126 size = g.MeasureString(column.ColumnName, font);
1127 xPadding = (width - size.Width) / 2;
1128 g.DrawString(column.ColumnName, font, brush, x + xPadding, y + 5);
1129 x += width;
1130 }
1131
1132 x = 0;
1133 y += 30;
1134
1135 int rowcount = 0;
1136
1137 // Process each row and place each item under correct column.
1138 foreach (DataRow row in tmp_Table.Rows)
1139 {
1140 rowcount++;
1141
1142
1143 for (int i = 0; i < columnCount; i++)
1144 {
1145 size = g.MeasureString(row[i].ToString(), font);
1146 xPadding = (width - size.Width) / 2;
1147
1148 g.DrawString(row[i].ToString(), font, brush, x + xPadding, y + 5);
1149 x += width;
1150 }
1151
1152 e.HasMorePages = rowcount - 1 < maxRows;
1153
1154 x = 0;
1155 y += 30;
1156
1157 }
1158
1159
1160
1161 footer = "Total: " + maxRows + " |Signed:..........................";
1162 size = g.MeasureString(footer, font);
1163 xPadding = (width - size.Width) / 2;
1164 g.DrawString(footer, font, brush, x + 250, y + 5);
1165
1166 x = 0;
1167 y += 30;
1168 }
1169
1170
1171
1172 }
1173
1174 */
1175
1176 //---https://stackoverflow.com/questions/19321899/showing-print-preview-in-c-sharp
1177 private void btnInHoaDon_Click(object sender, EventArgs e)
1178 {
1179 this.button1_Click(sender, e);
1180 }
1181
1182
1183
1184 private void txtMaSanPham_KeyDown(object sender, KeyEventArgs e)
1185 {
1186
1187 if (CauHinhHeThong.BARCODE_THEM_MOI_KHACH_HANG == txtMaSanPham.Text.Trim())
1188 {
1189 e.SuppressKeyPress = true;
1190
1191 this.btnThemMoi_Click(sender, e);
1192
1193 txtMaSanPham.Text = "";
1194 return;
1195 }
1196
1197
1198 if (((e.Control && e.KeyCode == Keys.S) || CauHinhHeThong.BARCODE_THANH_TOAN_BAN_HANG == txtMaSanPham.Text.Trim()) && btnThanhToan.Enabled == true)
1199 {
1200
1201 e.SuppressKeyPress = true;
1202
1203 btnThanhToan_Click(sender, e);
1204
1205 txtMaSanPham.Text = "";
1206 return;
1207 }
1208
1209
1210
1211
1212 if (CauHinhHeThong.BARCODE_DON_HANG_CHUA_THANH_TOAN == txtMaSanPham.Text.Trim())
1213 {
1214 this.KhachHangTruocClick();
1215 txtMaSanPham.Text = "";
1216 return;
1217 }
1218
1219
1220
1221 if (e.KeyCode == Keys.Enter && CauHinhHeThong.BARCODE_THANH_TOAN_BAN_HANG != txtMaSanPham.Text.Trim() && CauHinhHeThong.BARCODE_THEM_MOI_KHACH_HANG != txtMaSanPham.Text.Trim() && CauHinhHeThong.BARCODE_DON_HANG_CHUA_THANH_TOAN != txtMaSanPham.Text.Trim())
1222 {
1223 //Ấn enter không có tiếng kêu
1224 e.SuppressKeyPress = true;
1225
1226 if (_idKhachHang == 0)
1227 {
1228 //Insert vào bảng khách hàng lấy IdKhachHang
1229 //_idKhachHang = Controllers.KhachHangCtrl_tbl.InsertKhachHang_tbl(_idKhachHang, _tenKhachHang, _soDienThoai, _diaChi, _trangThai, _diemTichLuy, _tongTien, _tienKhach, _tienTraLai, _ngayMuaHang, _ghiChu, _TrangThaiGiaoDich);
1230 _idKhachHang = Controllers.uctBanHangCtrl.uctBanHang_KhachHang_Insert(_trangThai, _ngayMuaHang, _TrangThaiGiaoDich);
1231 _idKhBack = _idKhachHang;
1232
1233 //ẩn thông báo
1234 lblThongBao.Visible = false;
1235
1236 lblMaDonHang.Text = CauHinhHeThong.TIEU_DE_NGU_HOA_DON_BAN_HANG + _idKhachHang.ToString();
1237 }
1238
1239 if (_getTrangThaiThanhToan == true)
1240 {
1241 //this.uctBanHang_Load(sender, e);
1242 this.HienThiTrangBanHang();
1243 //ẩn thông báo
1244 lblThongBao.Visible = false;
1245 }
1246
1247
1248 btnTimThemSanPham_Click(this, new EventArgs());
1249 }
1250
1251 }
1252
1253
1254 private void cmbThueGTGT_TextChanged(object sender, EventArgs e)
1255 {
1256 //lblThueGTGT.Text = string.Format("{0:#,#}", this.ThueGiaTriGiaTang());
1257
1258 //tienHang = TongThanhTienHang();
1259 //thueGTGT = ThueGiaTriGiaTang();
1260
1261 //if(!string.IsNullOrEmpty(textBox2Tien.Text.Trim()) && (textBox2Tien.Text.Trim() != ".")){
1262 // cktien = double.Parse(textBox2Tien.Text.Replace(",", ""));
1263 //}else{
1264 // cktien = 0;
1265 //}
1266
1267 //tongtienthanhtoan = tienHang - cktien + thueGTGT;
1268 //lblTongTienThanhToan.Text = string.Format("{0:#,#}", tongtienthanhtoan);
1269 this.KetQuaTinhTien();
1270 }
1271
1272 /*
1273 private double ThueGiaTriGiaTang()
1274 {
1275 thueGTGT = 0;
1276 tienHang = TongThanhTienHang();
1277
1278 thueGTGT = tienHang * double.Parse(cmbThueGTGT.SelectedItem.ToString()) / 100;
1279
1280 return thueGTGT;
1281 }
1282
1283 * */
1284 //-http://stackoverflow.com/questions/26618839/text-changed-event-of-textbox-object-how-to-perform-text-change-another-actio
1285 /*
1286 private void txtChietKhau_TextChanged(object sender, EventArgs e)
1287 {
1288 try {
1289 //ckphantram = 0;
1290 //cktien = 0;
1291 string value = txtChietKhau.Text.Replace(",", "");
1292 ulong ul;
1293
1294 if (ulong.TryParse(value, out ul))
1295 {
1296 txtChietKhau.TextChanged -= txtChietKhau_TextChanged;
1297 txtChietKhau.Text = string.Format("{0:#,#}", ul);
1298 txtChietKhau.SelectionStart = txtChietKhau.Text.Length;
1299 txtChietKhau.TextChanged += txtChietKhau_TextChanged;
1300 }
1301
1302 this.KetQuaTinhTien();
1303 /*
1304 if (!string.IsNullOrEmpty(value) && value != ".")
1305 {
1306 ckphantram = double.Parse(value.Replace(",", ""));
1307 }
1308 this.textBox2Tien.TextChanged -= textBox2Tien_TextChanged;
1309 cktien = tienHang * ckphantram / 100;
1310 this.textBox2Tien.Text = string.Format("{0:#,#}", cktien);
1311 this.textBox2Tien.TextChanged += textBox2Tien_TextChanged;
1312
1313 tienHang = TongThanhTienHang();
1314 thueGTGT = ThueGiaTriGiaTang();
1315 tongtienthanhtoan = tienHang - cktien + thueGTGT;
1316 lblTongTienThanhToan.Text = string.Format("{0:#,#}", tongtienthanhtoan);
1317 ****
1318 }
1319 catch
1320 {
1321
1322 }
1323 }
1324 */
1325 /*
1326 private void textBox2Tien_TextChanged(object sender, EventArgs e)
1327 {
1328 try
1329 {
1330
1331 ckphantram = 0;
1332 cktien = 0;
1333 string value = textBox2Tien.Text.Replace(",", "");
1334 ulong ul;
1335
1336 if (ulong.TryParse(value, out ul))
1337 {
1338 textBox2Tien.TextChanged -= textBox2Tien_TextChanged;
1339 textBox2Tien.Text = string.Format("{0:#,#}", ul);
1340 textBox2Tien.SelectionStart = textBox2Tien.Text.Length;
1341 textBox2Tien.TextChanged += textBox2Tien_TextChanged;
1342 }
1343
1344 /*
1345 if (!string.IsNullOrEmpty(value) && value != ".")
1346 {
1347 cktien = double.Parse(value.Replace(",", ""));
1348 }
1349 if (cktien != 0)
1350 {
1351 ckphantram = tienHang / cktien;
1352 }
1353 else
1354 {
1355 ckphantram = 0;
1356 }
1357 this.textBox1PhanTram.TextChanged -= textBox1PhanTram_TextChanged;
1358 this.textBox1PhanTram.Text = string.Format("{0:#,#}", ckphantram);
1359 this.textBox1PhanTram.TextChanged += textBox1PhanTram_TextChanged;
1360
1361 tienHang = TongThanhTienHang();
1362 thueGTGT = ThueGiaTriGiaTang();
1363
1364 tongtienthanhtoan = tienHang - cktien + thueGTGT;
1365 lblTongTienThanhToan.Text = string.Format("{0:#,#}", tongtienthanhtoan);
1366 *
1367 }
1368 catch
1369 {
1370
1371 }
1372 }
1373 */
1374 /*
1375 private void txtChietKhau_KeyPress(object sender, KeyPressEventArgs e)
1376 {
1377
1378 if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.'))
1379 {
1380 e.Handled = true;
1381 }
1382
1383 // only allow one decimal point
1384 if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
1385 {
1386 e.Handled = true;
1387 }
1388 }
1389 */
1390
1391 /*
1392 private void textBox2Tien_KeyPress(object sender, KeyPressEventArgs e)
1393 {
1394 if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.'))
1395 {
1396 e.Handled = true;
1397 }
1398
1399 // only allow one decimal point
1400 if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
1401 {
1402 e.Handled = true;
1403 }
1404 }
1405 */
1406
1407
1408 private void KetQuaTinhTien()
1409 {
1410 tienHang = TongTienHang();
1411 //string ck = txtChietKhau.Text.Replace(",", "");
1412
1413 //if (!string.IsNullOrEmpty(ck) && ck != ".")
1414 //{
1415 //chietKhau = tienHang * (double.Parse(ck) / 100);
1416 //}
1417 //else
1418 //{
1419 //chietKhau = 0;
1420 //}
1421
1422 //string thue = "0";
1423
1424 //if (string.IsNullOrEmpty(cmbThueGTGT.SelectedItem.ToString()))
1425 // {
1426 //thue = cmbThueGTGT.SelectedItem.ToString();
1427 //}
1428
1429
1430
1431
1432
1433 //thueGTGT = tienHang * (double.Parse(thue) / 100);
1434 tongtienthanhtoan = tienHang + thueGTGT - chietKhau;
1435
1436 //lblTienHang.Text = string.Format("{0:#,#}", tienHang);
1437 textBoxTienHang.Text = CauHinhHeThong.Format_SoDeHienThi(tienHang, true);
1438 //lblChietKhau.Text = string.Format("{0:#,#}", chietKhau);
1439
1440 //lblThueGTGT.Text = string.Format("{0:#,#}", thueGTGT);
1441 textBoxTongThanhToan.Text = CauHinhHeThong.Format_SoDeHienThi(tongtienthanhtoan, true);// string.Format("{0:#,#}", tongtienthanhtoan);
1442 }
1443
1444 private void cmbThueGTGT_DrawItem(object sender, DrawItemEventArgs e)
1445 {
1446
1447 }
1448
1449 /*
1450 private void btnTheVipKhachHang_Click(object sender, EventArgs e)
1451 {
1452 //Đưa tổng tiền hàng lên form khách hàng
1453 //this.TongTienHang();
1454 // double tongtienh = this.TongTienHang();
1455
1456
1457 //Gọi lại form khách hàng tính điểm tích lũy
1458 //frmKhachHang frmKh = new frmKhachHang(tongtienh, _idKhachHang, lblSoDienThoai.Text);
1459
1460 // frmKh.MyGetData_TTKH = new frmKhachHang.GetString_ThongTinKhachHang(GetValue_ThongTinKhachHang);
1461
1462 //frmKh.ShowDialog();
1463
1464
1465 }
1466 */
1467
1468 private void pictureBox1_Click(object sender, EventArgs e)
1469 {
1470
1471 }
1472
1473 /*
1474 private void chkSuDungThanhToan_CheckedChanged(object sender, EventArgs e)
1475 {
1476
1477 if (chkSuDungThanhToan.Checked == true)
1478 {
1479 //lấy điểm tích lũy
1480 try
1481 {
1482 diemTichLuy_str = diemTichLuy_str.Replace(",", "");
1483
1484 _diemTichLuy = double.Parse(diemTichLuy_str) * 10 / 100;
1485
1486 double tongtt = tongtienthanhtoan - _diemTichLuy;
1487
1488 lblTongTienThanhToan.Text = string.Format("{0:#,#}", tongtt);
1489
1490
1491 }
1492 catch { }
1493 }
1494 else
1495 {
1496 lblTongTienThanhToan.Text = string.Format("{0:#,#}", tongtienthanhtoan);
1497
1498 _diemTichLuy = 0;
1499
1500 }
1501 }
1502 */
1503 private void btnThemMoi_Click(object sender, EventArgs e)
1504 {
1505 // _tenKhachHang = "";
1506 //_soDienThoai = "";
1507 //_diaChi = "";
1508 _trangThai = 0;
1509 //_diemTichLuy = 0;
1510 //_tongTien = 0;
1511 //_tienKhach = 0;
1512 //_tienTraLai = 0;
1513 _ngayMuaHang = DateTime.Now;
1514 //_ghiChu = "";
1515
1516 lblKh.Text = "Mua hàng";
1517 _TrangThaiGiaoDich = "MuaHang";
1518 cmbTTKh.Visible = false;
1519 cmbTTKh.SelectedValue = "MuaHang";
1520 tongtienthanhtoan_co_thueCk = 0;
1521
1522 lblThongBao.Visible = false;
1523
1524 //_idKhachHang = Controllers.KhachHangCtrl_tbl.InsertKhachHang_tbl(_idKhachHang, _tenKhachHang, _soDienThoai, _diaChi, _trangThai, _diemTichLuy, _tongTien, _tienKhach, _tienTraLai, _ngayMuaHang, _ghiChu, _TrangThaiGiaoDich);
1525 _idKhachHang = Controllers.uctBanHangCtrl.uctBanHang_KhachHang_Insert(_trangThai, _ngayMuaHang, _TrangThaiGiaoDich);
1526 _idKhBack = _idKhachHang;
1527
1528 lblMaDonHang.Text = CauHinhHeThong.TIEU_DE_NGU_HOA_DON_BAN_HANG + _idKhachHang.ToString();
1529 //lblTienKhach.Text = "0";
1530 textBoxTienKhachDua.Text = "0";
1531 //lblTienHang.Text = "0";
1532 textBoxTienHang.Text = "0";
1533 //lblTongTienThanhToan.Text = "0";
1534 textBoxTongThanhToan.Text = "0";
1535 //lblTraLai.Text = "0";
1536 textBoxTraLaiKhach.Text = "0";
1537
1538 txtSoLuong.Text = "";
1539 txtGiaBan.Text = "";
1540
1541 txtMaSanPham.Enabled = true;
1542 txtMaSanPham.Focus();
1543 //txtGiaBan.Enabled = true;
1544 //txtSoLuong.Enabled = true;
1545
1546 //btnThemMoi.Enabled = false;
1547 btnLoaiBo.Visible = false;
1548 //btnThayDoiGia.Enabled = true;
1549 //btnThayDoiSoLuong.Enabled = true;
1550 //chkSuDungThanhToan.Enabled = true;
1551
1552 dgvDanhSachBanHang.Rows.Clear();
1553
1554 btnThanhToan.Enabled = false;
1555 //Đưa thông tin khách hàng về khách hàng mới
1556 //ThongTinKhachHang_Bool(false);
1557
1558 }
1559
1560 private void txtGiaBan_Click(object sender, EventArgs e)
1561 {
1562 loadlandau = false;
1563 }
1564
1565 private void txtGiaBan_MouseCaptureChanged(object sender, EventArgs e)
1566 {
1567 loadlandau = false;
1568 }
1569
1570 private void txtSoLuong_Click(object sender, EventArgs e)
1571 {
1572 loadlandau = false;
1573 }
1574
1575 private void txtSoLuong_MouseCaptureChanged(object sender, EventArgs e)
1576 {
1577 loadlandau = false;
1578 }
1579
1580 private void txtGiaBan_KeyDown(object sender, KeyEventArgs e)
1581 {
1582 if (e.KeyCode == Keys.Enter)
1583 {
1584 e.SuppressKeyPress = true;
1585 //dua chuot vao o so luong
1586 txtSoLuong.Focus();
1587 }
1588 }
1589
1590 private void txtSoLuong_KeyDown(object sender, KeyEventArgs e)
1591 {
1592 if (e.KeyCode == Keys.Enter)
1593 {
1594 e.SuppressKeyPress = true;
1595
1596 //Kiểm tra hàng khuyễn mãi
1597 //this.KiemTraHangKhuyenMai();
1598 //dua chuot vao o ma san pham
1599 txtMaSanPham.Focus();
1600 }
1601 }
1602
1603 private void dgvDanhSachBanHang_CellClick(object sender, DataGridViewCellEventArgs e)
1604 {
1605 //-https://stackoverflow.com/questions/1132471/how-to-reference-column-name-instead-of-e-columnindex-in-winform-datagridview-ev
1606 if ( dgvDanhSachBanHang.Columns[e.ColumnIndex].Name == "TenSanPham" && e.RowIndex != -1)
1607 {
1608 //-https://stackoverflow.com/questions/12762036/datagridview-cell-click-event
1609 if (dgvDanhSachBanHang.CurrentCell != null && dgvDanhSachBanHang.CurrentCell.Value != null)
1610 {
1611 //khong cho update trong textchange
1612 loadlandau = true;
1613
1614 double giaban = 0;
1615 double soluongDaBan = 0;
1616
1617 giaban = CauHinhHeThong.Format_SoDeTinhToan(dgvDanhSachBanHang.Rows[e.RowIndex].Cells["GiaBan"].Value.ToString(),true);
1618 soluongDaBan = CauHinhHeThong.Format_SoDeTinhToan(dgvDanhSachBanHang.Rows[e.RowIndex].Cells["SoLuongDaBan"].Value.ToString(), true);
1619
1620 txtGiaBan.Text = CauHinhHeThong.Format_SoDeHienThi(giaban, true);
1621 txtSoLuong.Text = CauHinhHeThong.Format_SoDeHienThi(soluongDaBan, false);
1622 _tenSanPham = dgvDanhSachBanHang.Rows[e.RowIndex].Cells["TenSanPham"].Value.ToString();
1623
1624 _idBanHang = Int32.Parse(dgvDanhSachBanHang.Rows[e.RowIndex].Cells["IdBanHang"].Value.ToString());
1625 _getIdKho = Int32.Parse(dgvDanhSachBanHang.Rows[e.RowIndex].Cells["NhapKhoId"].Value.ToString());
1626
1627 _maSanPham = dgvDanhSachBanHang.Rows[e.RowIndex].Cells["MaSanPham"].Value.ToString();
1628
1629 }
1630
1631 }
1632 }
1633
1634 private void linkLabelThietLapCk_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
1635 {
1636 frmBanHang_Ck_Thue frmBhCk_Thue = new frmBanHang_Ck_Thue(_idKhachHang);
1637 frmBhCk_Thue.ShowDialog();
1638
1639 //Goi lai danh sach san pham
1640 this.HienThiDanhSachSanPhamTheoKhachHang(_idKhachHang);
1641 }
1642
1643 private void linkLabelXemChiTiet_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
1644 {
1645 //frmBanHang_Ck_Thue frmBhCk_Thue = new frmBanHang_Ck_Thue(_idKhachHang);
1646 //frmBhCk_Thue.ShowDialog();
1647
1648 //Goi lai danh sach san pham
1649 //this.HienThiDanhSachSanPhamTheoKhachHang(_idKhachHang);
1650 }
1651
1652
1653 private void KiemTraHangKhuyenMai()
1654 {
1655
1656 /*
1657 //lay danh sach san pham duoc khuyen mai
1658 float sol = float.Parse( CauHinhHeThong.Format_SoDeTinhToan(txtSoLuong.Text.Trim()).ToString());
1659 //kiem tra san pham co hang khuyen mai hay khong
1660 dtBomItem = Controllers.BomItemCtrl.FillDataSet_BomItem_Get_SpKhuyenMai_Count(0, 0, _maSanPham, "TrangThai", sol, DateTime.Now).Tables[0];
1661 if (Int32.Parse( dtBomItem.Rows[0]["SoSanPhamKhuyenMai"].ToString() ) > 0)
1662 {
1663 frmBanHang_BomVaGoiSp frmBhBomGsp = new frmBanHang_BomVaGoiSp(0, 0, _maSanPham, "TrangThai", Int32.Parse(CauHinhHeThong.Format_SoDeTinhToan(txtSoLuong.Text.Trim()).ToString()), DateTime.Now, _idKhachHang);
1664 frmBhBomGsp.ShowDialog();
1665 //Insert hang khuyễn mãi
1666
1667 //select từ bảng bán hàng
1668 this.HienThiDanhSachSanPhamTheoKhachHang(_idKhachHang);
1669 }
1670 */
1671 string IdBomStr = string.Empty;
1672 string LoaiHangHoa = "MuaHang";
1673 dtBomItem = Controllers.BomItemCtrl.FillDataSet_BomItem_Get_SpKhuyenMai_KiemTra(IdBomStr, LoaiHangHoa, _idKhachHang, _ngayMuaHang).Tables[0];
1674
1675 if (dtBomItem.Rows.Count > 0)
1676 {
1677 foreach(DataRow item in dtBomItem.Rows)
1678 {
1679 IdBomStr += item["IdBom"].ToString() + ";";
1680 }
1681
1682 frmBanHang_BomVaGoiSp frmBhBomGsp = new frmBanHang_BomVaGoiSp(IdBomStr, "HangKhuyenMai", "TrangThai", DateTime.Now, _idKhachHang);
1683 frmBhBomGsp.ShowDialog();
1684
1685 this.HienThiDanhSachSanPhamTheoKhachHang(_idKhachHang);
1686 }
1687
1688 }
1689
1690 private void linkLabel_ThietLap_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
1691 {
1692 cmbTTKh.Visible = true;
1693 }
1694
1695 private void cmbTTKh_SelectionChangeCommitted(object sender, EventArgs e)
1696 {
1697
1698 if (cmbTTKh.SelectedValue.ToString() == "MuaHang")
1699 {
1700 lblKh.Text = "Mua hàng";
1701 _TrangThaiGiaoDich = "MuaHang";
1702
1703 cmbTTKh.Visible = false;
1704 }
1705 else if (cmbTTKh.SelectedValue.ToString() == "DatHang")
1706 {
1707 lblKh.Text = "Đặt hàng";
1708 _TrangThaiGiaoDich = "DatHang";
1709
1710 }
1711 else
1712 {
1713 lblKh.Text = "Trả hàng";
1714 _TrangThaiGiaoDich = "TraHang";
1715
1716 }
1717
1718 if (_idKhachHang == 0)
1719 {
1720 //Insert vào bảng khách hàng lấy IdKhachHang
1721 _idKhachHang = Controllers.uctBanHangCtrl.uctBanHang_KhachHang_Insert(_trangThai, _ngayMuaHang, _TrangThaiGiaoDich);
1722 //ẩn thông báo
1723 lblThongBao.Visible = false;
1724
1725 lblMaDonHang.Text = CauHinhHeThong.TIEU_DE_NGU_HOA_DON_BAN_HANG + _idKhachHang.ToString();
1726 }
1727
1728
1729
1730 }
1731
1732 private void KhachHangTruocClick()
1733 {
1734 lblThongBao.Visible = false;
1735
1736 if (_getTrangThaiThanhToan == true)
1737 {
1738 this.HienThiKhachHangTruoc(_idKhBack, _ngayMuaHang);
1739
1740 return;
1741 }
1742
1743 this.HienThiKhachHangTruoc(_idKhBack, _ngayMuaHang);
1744 }
1745
1746 private void linkLabel_KhachHangTruoc_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
1747 {
1748 this.KhachHangTruocClick();
1749
1750 }
1751
1752 private void HienThiKhachHangTruoc(int idKhachHang, DateTime ngayMuaHang)
1753 {
1754 dtKhTruoc = Controllers.uctBanHangCtrl.uctBanHang_Gets_KhachHangTruoc(0, idKhachHang, "MuaHang", ngayMuaHang, 1, _pageIndexKhTruoc).Tables[0];
1755
1756 if (dtKhTruoc.Rows.Count > 0)
1757 {
1758 _idKhachHang = Int32.Parse(dtKhTruoc.Rows[0]["IdKhachHang"].ToString());
1759 _idKhBack = Int32.Parse(dtKhTruoc.Rows[0]["BackIdKh"].ToString());
1760
1761 this.HienThiDanhSachSanPhamTheoKhachHang(_idKhachHang);
1762
1763 lblMaDonHang.Text = CauHinhHeThong.TIEU_DE_NGU_HOA_DON_BAN_HANG + _idKhachHang.ToString();
1764
1765 txtMaSanPham.Focus();
1766
1767 btnThanhToan.Enabled = true;
1768 }
1769 else
1770 {
1771 dgvDanhSachBanHang.Rows.Clear();
1772 txtSoLuong.Text = "";
1773 txtGiaBan.Text = "";
1774 lblMaDonHang.Text = "0";
1775 textBoxTienHang.Text = "";
1776 textBoxTongThanhToan.Text = "";
1777 textBoxTienKhachDua.Text = "";
1778 textBoxTraLaiKhach.Text = "";
1779
1780 _tongSoBanGhiKhTruoc = 0;
1781
1782 }
1783 }
1784
1785 private void linkLabel_ThongTinKH_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
1786 {
1787 //Đưa tổng tiền hàng lên form khách hàng
1788 //this.TongTienHang();
1789 // double tongtienh = this.TongTienHang();
1790
1791
1792 //Gọi lại form khách hàng tính điểm tích lũy
1793 frmKhachHang frmKh = new frmKhachHang(0, _idKhachHang, "");
1794
1795 frmKh.MyGetData_TTKH = new frmKhachHang.GetString_ThongTinKhachHang(GetValue_ThongTinKhachHang);
1796
1797 frmKh.ShowDialog();
1798 }
1799
1800 private void txtMaDonHang2_KeyDown(object sender, KeyEventArgs e)
1801 {
1802 if (e.KeyCode == Keys.Enter)
1803 {
1804 //Ấn enter không có tiếng kêu
1805 e.SuppressKeyPress = true;
1806
1807
1808
1809 }
1810 }
1811
1812 private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
1813 {
1814 CauHinhHeThong.PRINT_WIDTH = 800;
1815 CauHinhHeThong.PRINT_HEIGHT = 750;
1816
1817 float xWidth = (float)CauHinhHeThong.PRINT_WIDTH;
1818 float yHeight = (float)CauHinhHeThong.PRINT_HEIGHT;
1819
1820 //set font, size & style
1821 Font f = new Font("Arial", 12, FontStyle.Regular);
1822
1823 //create a bmp / graphic to use MeasureString on
1824 Bitmap bMap = new Bitmap(2200, 2200);
1825 Graphics gMap = Graphics.FromImage(bMap);
1826
1827 //measure the string
1828 SizeF sizeOfString = new SizeF();
1829
1830 //use:
1831 //Debug.WriteLine("String Height: " + sizeOfString.Height);
1832 //Debug.WriteLine("String Width: " + sizeOfString.Width);
1833
1834 float currentY = 50;// declare one variable for height measurement
1835 // e.Graphics.DrawString("Print in Multiple Pages", DefaultFont, Brushes.Black, 10, currentY);//this will print one heading/title in every page of the document
1836 sizeOfString = gMap.MeasureString(CauHinhHeThong.TEN_CONG_TY, new Font("Arial", 22, FontStyle.Regular));
1837 e.Graphics.DrawString(CauHinhHeThong.TEN_CONG_TY, new Font("Arial", 22, FontStyle.Regular), Brushes.Black, xWidth / 2 - (sizeOfString.Width/2), currentY);
1838
1839 currentY += (10 + sizeOfString.Height);
1840 sizeOfString = gMap.MeasureString("ĐC: " + CauHinhHeThong.DIA_CHI, f);
1841 e.Graphics.DrawString("ĐC:" + CauHinhHeThong.DIA_CHI, new Font("Arial", 12, FontStyle.Regular), Brushes.Black, xWidth / 2 - (sizeOfString.Width / 2), currentY);
1842
1843 currentY += 25;
1844 sizeOfString = gMap.MeasureString("Hotline: " + CauHinhHeThong.HOTLINE, f);
1845 e.Graphics.DrawString("Hotline:" + CauHinhHeThong.HOTLINE, new Font("Arial", 12, FontStyle.Regular), Brushes.Black, xWidth / 2 - (sizeOfString.Width / 2), currentY);
1846
1847
1848 currentY += 25;
1849 sizeOfString = gMap.MeasureString("HÓA ĐƠN THANH TOÁN", new Font("Arial", 14, FontStyle.Regular));
1850 e.Graphics.DrawString("HÓA ĐƠN THANH TOÁN", new Font("Arial", 14, FontStyle.Regular), Brushes.Black, xWidth / 2 - (sizeOfString.Width / 2), currentY);
1851
1852 //tao dong ket ngang
1853 Pen redPen = new Pen(Color.Red, 1);
1854 //Graphics.DrawLine(redPen, x1, y1, x2, y2);
1855 currentY += 35;
1856
1857 //can le trong page
1858 float canLe = 35.0F;
1859 e.Graphics.DrawLine(redPen, canLe, currentY, (xWidth - canLe), currentY);
1860
1861 currentY += 25;
1862 e.Graphics.DrawString("Số HĐ: " + " " + lblMaDonHang.Text.Trim(), new Font("Arial", 12, FontStyle.Regular), Brushes.Black, canLe, currentY);
1863
1864 currentY += 25;
1865 e.Graphics.DrawString("Thu ngân: ", new Font("Arial", 12, FontStyle.Regular), Brushes.Black, canLe, currentY);
1866
1867 currentY += 25;
1868 e.Graphics.DrawString("Ngày giờ: " + CauHinhHeThong.Format_HienThiNgayThangNam(DateTime.Now.ToString(), true), new Font("Arial", 12, FontStyle.Regular), Brushes.Black, canLe, currentY);
1869
1870 //tao bang
1871 Pen penTable = new Pen(Color.Black, 1);
1872 currentY += 25;
1873 e.Graphics.DrawLine(penTable, canLe, currentY, (xWidth - canLe), currentY);
1874
1875 //currentY += 20;
1876
1877 float cotX = (xWidth /24);
1878
1879
1880 // lay chieu cao cau text
1881 sizeOfString = gMap.MeasureString("STT", new Font("Arial", 12, FontStyle.Regular));
1882 float chieuCaoHang = sizeOfString.Height + 3;
1883
1884 currentY += 5;
1885 e.Graphics.DrawString("STT", new Font("Arial", 12, FontStyle.Regular), Brushes.Black, canLe, currentY);
1886 e.Graphics.DrawLine(penTable, canLe, currentY - 5, canLe, currentY + chieuCaoHang);
1887
1888 e.Graphics.DrawString("Sản phẩm", new Font("Arial", 12, FontStyle.Regular), Brushes.Black, (canLe + cotX * 3), currentY);
1889 e.Graphics.DrawLine(penTable, (canLe + cotX + 10), currentY - 5, (canLe + cotX + 10), currentY + chieuCaoHang);
1890
1891 e.Graphics.DrawString("ĐVT", new Font("Arial", 12, FontStyle.Regular), Brushes.Black, (canLe + cotX * 10), currentY);
1892 e.Graphics.DrawLine(penTable, (canLe + cotX * 9), currentY - 5, (canLe + cotX * 9), currentY + chieuCaoHang);
1893
1894 e.Graphics.DrawString("S.Lượng", new Font("Arial", 12, FontStyle.Regular), Brushes.Black, (canLe + cotX * 12 +5), currentY);
1895 e.Graphics.DrawLine(penTable, (canLe + cotX * 12), currentY - 5, (canLe + cotX * 12 ), currentY + chieuCaoHang);
1896
1897
1898 e.Graphics.DrawString("Đơn giá", new Font("Arial", 12, FontStyle.Regular), Brushes.Black, (canLe + cotX * 15), currentY);
1899 e.Graphics.DrawLine(penTable, (canLe + cotX * 14 + 15), currentY - 5, (canLe + cotX * 14 +15), currentY + chieuCaoHang);
1900
1901
1902 e.Graphics.DrawString("Thành tiền", new Font("Arial", 12, FontStyle.Regular), Brushes.Black, (canLe + cotX * 19), currentY);
1903 e.Graphics.DrawLine(penTable, (canLe + cotX * 18), currentY - 5, (canLe + cotX * 18), currentY + chieuCaoHang);
1904 e.Graphics.DrawLine(penTable, xWidth - canLe, currentY - 5, xWidth - canLe, currentY + chieuCaoHang);
1905
1906
1907 //chan can le
1908 currentY += 22;
1909 e.Graphics.DrawLine(penTable, canLe, currentY , (xWidth - canLe), currentY);
1910
1911 string tSanPham = "";
1912 string[] arrText;
1913 string txtSpChuoi = "";
1914
1915 float pTongT = 0;
1916
1917 DataTable dtPrint = new DataTable();
1918 int idKhPrint = 0;
1919 idKhPrint = Int32.Parse(lblMaDonHang.Text.Replace(CauHinhHeThong.TIEU_DE_NGU_HOA_DON_BAN_HANG, ""));
1920 dtPrint = Controllers.BanHangCtrl.FillDataSet_getBanHangByKhachHangId("", idKhPrint).Tables[0];
1921 if (dtPrint.Rows.Count > 0)
1922 {
1923 int dem = 0;
1924 float sluongDb = 0;
1925 float gBan = 0;
1926 float pThue = 0;
1927 float pCkhau = 0;
1928 float pThanhTien = 0;
1929 foreach (DataRow item in dtPrint.Rows)
1930 {
1931 dem += 1;
1932 currentY += 5;
1933 tSanPham = item["TenSanPham"].ToString();
1934
1935 sizeOfString = gMap.MeasureString(tSanPham, new Font("Arial", 12, FontStyle.Regular));
1936 if (sizeOfString.Width > (cotX * 8))
1937 {
1938 //tSanPham = "Sản abc 124/lit phẩm sadf abc 12 21";
1939
1940 arrText = tSanPham.Split(' ');
1941
1942 txtSpChuoi = "";
1943 for (int t = 0; t < arrText.Length; t++)
1944 {
1945 if (t % 5 == 0 && t != 0)
1946 {
1947 txtSpChuoi += arrText[t] + "\r\n";
1948 }
1949 else
1950 {
1951 txtSpChuoi += arrText[t] + " ";
1952 }
1953 }
1954 tSanPham = txtSpChuoi;
1955 sizeOfString = gMap.MeasureString(tSanPham, new Font("Arial", 12, FontStyle.Regular));
1956
1957 }
1958 chieuCaoHang = sizeOfString.Height + 3;
1959
1960 //stt
1961 e.Graphics.DrawString(dem.ToString(), new Font("Arial", 12, FontStyle.Regular), Brushes.Black, canLe + 10, currentY);
1962 e.Graphics.DrawLine(penTable, canLe, currentY - 5, canLe, currentY + chieuCaoHang);
1963
1964 e.Graphics.DrawString(tSanPham, new Font("Arial", 12, FontStyle.Regular), Brushes.Black, (canLe + cotX + 15), currentY);
1965 e.Graphics.DrawLine(penTable, (canLe + cotX + 10), currentY - 5, (canLe + cotX + 10), currentY + chieuCaoHang);
1966
1967
1968 e.Graphics.DrawString(item["TenDonViTinh"].ToString(), new Font("Arial", 12, FontStyle.Regular), Brushes.Black, (canLe + cotX * 10), currentY);
1969 e.Graphics.DrawLine(penTable, (canLe + cotX * 9), currentY - 5, (canLe + cotX * 9), currentY + chieuCaoHang);
1970
1971 sluongDb =(float)CauHinhHeThong.Format_SoDeTinhToan(item["SoLuongDaBan"].ToString(), false);
1972 gBan = (float)CauHinhHeThong.Format_SoDeTinhToan(item["GiaBan"].ToString(), false);
1973
1974 pThue = (float)CauHinhHeThong.Format_SoDeTinhToan(item["Thue"].ToString(), false);
1975 pCkhau = (float)CauHinhHeThong.Format_SoDeTinhToan(item["ChietKhauPhanTram"].ToString(), false);
1976
1977 pThanhTien =(float)CauHinhHeThong.BanHang_ThanhTien(gBan, sluongDb, pThue, pCkhau);
1978
1979 pTongT += pThanhTien;
1980
1981 e.Graphics.DrawString(CauHinhHeThong.Format_SoDeHienThi(sluongDb, false), new Font("Arial", 12, FontStyle.Regular), Brushes.Black, (canLe + cotX * 12 + 5), currentY);
1982 e.Graphics.DrawLine(penTable, (canLe + cotX * 12), currentY - 5, (canLe + cotX * 12), currentY + chieuCaoHang);
1983
1984
1985 e.Graphics.DrawString(CauHinhHeThong.Format_SoDeHienThi(gBan - (gBan * pCkhau / 100) + (gBan * pThue / 100), true), new Font("Arial", 12, FontStyle.Regular), Brushes.Black, (canLe + cotX * 15), currentY);
1986 e.Graphics.DrawLine(penTable, (canLe + cotX * 14 + 15), currentY - 5, (canLe + cotX * 14 + 15), currentY + chieuCaoHang);
1987
1988
1989 e.Graphics.DrawString(CauHinhHeThong.Format_SoDeHienThi(pThanhTien, true), new Font("Arial", 12, FontStyle.Regular), Brushes.Black, (canLe + cotX * 19), currentY);
1990 e.Graphics.DrawLine(penTable, (canLe + cotX * 18), currentY - 5, (canLe + cotX * 18), currentY + chieuCaoHang);
1991 e.Graphics.DrawLine(penTable, xWidth - canLe, currentY - 5, xWidth - canLe, currentY + chieuCaoHang);
1992
1993
1994 //dong ke
1995 currentY += chieuCaoHang;
1996 e.Graphics.DrawLine(penTable, canLe, currentY, (xWidth - canLe), currentY);
1997 }
1998
1999 }
2000 else
2001 {
2002 pTongT = 0;
2003 }
2004
2005 currentY += 50;
2006 e.Graphics.DrawLine(penTable, canLe, currentY, (xWidth - canLe), currentY);
2007
2008 currentY += 7;
2009 //thanh tien
2010 e.Graphics.DrawString("Tiền thanh toán", new Font("Arial", 14, FontStyle.Regular), Brushes.Black, canLe, currentY);
2011 e.Graphics.DrawString(CauHinhHeThong.Format_SoDeHienThi(pTongT,true), new Font("Arial", 14, FontStyle.Regular), Brushes.Black, (canLe + cotX * 19), currentY);
2012
2013 currentY += 35;
2014 //tien khach
2015 e.Graphics.DrawString("Tiền khách", new Font("Arial", 12, FontStyle.Regular), Brushes.Black, canLe, currentY);
2016 e.Graphics.DrawString(textBoxTienKhachDua.Text, new Font("Arial", 12, FontStyle.Regular), Brushes.Black, (canLe + cotX * 19), currentY);
2017
2018 currentY += 35;
2019 //tra lai
2020 e.Graphics.DrawString("Tiền trả lại", new Font("Arial", 12, FontStyle.Regular), Brushes.Black, canLe, currentY);
2021 e.Graphics.DrawString(textBoxTraLaiKhach.Text, new Font("Arial", 12, FontStyle.Regular), Brushes.Black, (canLe + cotX * 19), currentY);
2022
2023
2024 //kẻ hết
2025 currentY += 30;
2026 e.Graphics.DrawLine(penTable, canLe, currentY, (xWidth - canLe), currentY);
2027 currentY += 20;
2028 sizeOfString = gMap.MeasureString("Hân hạnh phục vụ Quý khách", f);
2029 e.Graphics.DrawString("Hân hạnh phục vụ Quý khách", new Font("Arial", 12, FontStyle.Regular), Brushes.Black, xWidth / 2 - (sizeOfString.Width / 2), currentY);
2030
2031 currentY += 20;
2032 sizeOfString = gMap.MeasureString("Cảm ơn & Hẹn gặp lại!", f);
2033 e.Graphics.DrawString("Cảm ơn & Hẹn gặp lại!", new Font("Arial", 12, FontStyle.Regular), Brushes.Black, xWidth / 2 - (sizeOfString.Width / 2), currentY);
2034
2035
2036 /*
2037 while (totalnumber <= 50) // check the number of items
2038 {
2039 //e.Graphics.DrawString(totalnumber.ToString(), new Font("Arial", 12, FontStyle.Regular), Brushes.Black, 220, currentY);//print each item
2040
2041
2042 currentY += 25; // set a gap between every item
2043 totalnumber += 1; //increment count by 1
2044 if (itemperpage < 20) // check whether the number of item(per page) is more than 20 or not
2045 {
2046 itemperpage += 1; // increment itemperpage by 1
2047 e.HasMorePages = false; // set the HasMorePages property to false , so that no other page will not be added
2048
2049 }
2050 else // if the number of item(per page) is more than 20 then add one page
2051 {
2052 itemperpage = 0; //initiate itemperpage to 0 .
2053 e.HasMorePages = true; //e.HasMorePages raised the PrintPage event once per page .
2054 return;//It will call PrintPage event again
2055
2056 }
2057 }
2058 */
2059 }
2060
2061 private void button1_Click(object sender, EventArgs e)
2062 {
2063 ///here we are printing 50 numbers sequentially by using loop.
2064 //For each button click event we have to reset below two variables to 0
2065 // because every time PrintPage event fires automatically.
2066 /*
2067 itemperpage = totalnumber = 0;
2068 printPreviewDialog1.Document = printDocument1;
2069
2070 ((ToolStripButton)((ToolStrip)printPreviewDialog1.Controls[1]).Items[0]).Enabled
2071 = false;//disable the direct print from printpreview.as when we click that Print button PrintPage event fires again.
2072
2073
2074 printDocument1.DefaultPageSettings.PaperSize = paperSize;
2075 printPreviewDialog1.PrintPreviewControl.Zoom = 1;
2076 printPreviewDialog1.ShowDialog();
2077 */
2078 this.ThucHienLenhIn();
2079 }
2080
2081 private void ThucHienLenhIn()
2082 {
2083 itemperpage = totalnumber = 0;
2084 printPreviewDialog1.Document = printDocument1;
2085
2086 ((ToolStripButton)((ToolStrip)printPreviewDialog1.Controls[1]).Items[0]).Enabled = false;//disable the direct print from printpreview.as when we click that Print button PrintPage event fires again.
2087
2088
2089 printDocument1.DefaultPageSettings.PaperSize = paperSize;
2090 printPreviewDialog1.PrintPreviewControl.Zoom = 1;
2091 printPreviewDialog1.ShowDialog();
2092 }
2093
2094 private void button2_Click(object sender, EventArgs e)
2095 {
2096 itemperpage = totalnumber = 0;
2097 printDialog1.Document = printDocument1;
2098 printDocument1.DefaultPageSettings.PaperSize = paperSize;
2099 printDialog1.ShowDialog();
2100 }
2101
2102 private void linkLabelValidateKey_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
2103 {
2104 frmConnectCSDL frmCsdl = new frmConnectCSDL("KeyPm");
2105 frmCsdl.ShowDialog();
2106 }
2107
2108
2109
2110 //private void linkLabel_DsSanPhamDaBan_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
2111 //{
2112
2113 //}
2114
2115 /*
2116 private void linkLabel_TimDonHang_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
2117 {
2118 txtTimDonHang.Visible = true;
2119
2120 if (!string.IsNullOrEmpty(txtTimDonHang.Text.Trim()))
2121 {
2122 int idKhTk = (int)CauHinhHeThong.Format_SoDeTinhToan(txtTimDonHang.Text.Trim(),true);
2123 HienThiDanhSachSanPhamTheoKhachHang(idKhTk);
2124 }
2125 }
2126
2127 private void txtTimDonHang_KeyDown(object sender, KeyEventArgs e)
2128 {
2129 if (e.KeyCode == Keys.Enter)
2130 {
2131 //Ấn enter không có tiếng kêu
2132 e.SuppressKeyPress = true;
2133
2134 int idKhTk = (int)CauHinhHeThong.Format_SoDeTinhToan(txtTimDonHang.Text.Trim(), true);
2135 HienThiDanhSachSanPhamTheoKhachHang(idKhTk);
2136
2137 }
2138 }
2139 */
2140
2141
2142
2143
2144
2145 }
2146 }